package cn.hughie.trie;

import org.junit.Test;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

/**
 * @author lizx
 *         2018/5/10 16:49
 */
public class TestDoubleArrayTrie {

    /**
     * 检索key的前缀命中了词典中的哪些词<br>
     * key的前缀有多个，所以有可能命中词典中的多个词
     */
    @Test
    public void testPrefixMatch() {
        DoubleArrayTrie adt = new DoubleArrayTrie();
        List<String> list = new ArrayList<String>();
        list.add("阿胶");
        list.add("阿拉伯");
        list.add("阿拉伯人");
        list.add("埃及");
        // 所有词必须先排序
        Collections.sort(list);//TODO 为什么要排序
        // 构建DoubleArrayTrie
        adt.build(list);
        String key = "阿拉伯人";
        // 检索key的前缀命中了词典中的哪些词
        List<Integer> rect = adt.commonPrefixSearch(key);
        for (int index : rect) {
            System.out.println("前缀  " + list.get(index) + " matched");
        }
        System.out.println("=================");
        //adt.dump();
    }

    @Test
    public void testPrefixMatchIndex() {
        DoubleArrayTrie adt = new DoubleArrayTrie();
        List<String> list = new ArrayList<String>();
        list.add("自杀");
        list.add("三级片");
        list.add("三级片啊");
        list.add("法轮");
        // 所有词必须先排序
        Collections.sort(list);//TODO 为什么要排序
        // 构建DoubleArrayTrie
        adt.build(list);
        // 检索key的前缀命中了词典中的哪些词
        long l = System.currentTimeMillis();
        String txt = "三级片此诗的创作时间，史籍没有自杀明确记载。而唐人孟三级片棨《本事诗》和宋代《太平广记》则记自杀载了此诗“本事”：崔护到长安参加进士考试落第后，在长安南郊偶遇一美丽少女，次年清明节重访此女不遇，于是题写此诗。这段记载颇具传奇小说色彩，其真实性难以得到其他史料的印证此诗的创作时间，史籍没有明确记载。而唐人孟棨《本事诗》和宋代《太平广记》则记载了此诗“本事”：崔护到长安参加进士考试落第后，在长安南郊偶遇一美丽少女，次年清明节重访此女不遇，于是题写此诗。这段记载颇具传奇小说色彩，其真实性难以得到其他史料的印证此诗的创作时间，史籍没有明确记载。而唐人孟棨《本事诗》和宋代《太平广记》则记载了此诗“本事”：崔护到长安参加进士考试落第后，在长安南郊偶遇一美丽少女，次年清明节重访此女不遇，于是题写此诗。这段记载颇具传奇小说色彩，其真实性难以得到其他史料的印证此诗的创作时间，史籍没有明确记载。而唐人孟棨《本事诗》和宋代《太平广记》则记载了此诗“本事”：崔护到长安参加进士考试落第后，在长安南郊偶遇一美丽少女，次年清明节重访此女不遇，于是题写此诗。这段记载颇具传奇小说色彩，其真实性难以得到其他史料的印证此诗的创作时间，史籍没有明确记载。而唐人孟棨《本事诗》和宋代《太平广记》则记载了此诗“本事”：崔护到自杀长安参加进士考试落第后，在长安南郊偶遇一美丽少女，次年清明节重访此女不遇，于是题写此诗。这段记载颇具传奇小说色彩，其真实性难以得到其他史料的印证此诗的创作时间，史籍没有明确记载。而唐人孟棨《本事诗》和宋代《太平广记》则记载了此诗“本事”：崔护到长安参加进士考试落第后，在长安南郊偶遇一美丽少女，次年清明节重访此女不遇，于是题写此诗。这段记载颇具传奇小说色彩，其真实性难以得到其他史料的印证此诗的创作时间，史籍没有明确记载。而唐人孟棨《本事诗》和宋代《太平广记》则记载了此诗“本事”：崔护到长安参加进士考试落第后，在长安南郊偶遇一美丽少女，次年清明节重访此女不遇，于是题写此诗。这段记载颇具传奇小说色彩，其真实性难以得到其他史料的印证此诗的创作时间，史籍没有明确记载。而唐人孟棨《本事诗》和宋代《太平广记》则记自杀载了此诗“本事”：崔护到长安参加进士考试落第后，在长安南郊偶遇一美丽少女，次年清明节重访此女不遇，于是题写此诗。这段记载颇具传奇小说色彩，其真实性难以得到其他史料的印证此诗的创作时间，史籍没有明确记载。而唐人孟棨《本事诗》和宋代《太平广记》则记载了此诗“本事”：崔护到长安参加进士考试落第后，在长安南郊偶遇一美丽少女，次年清明节重访此女不遇，于是题写自杀此诗。这段记载颇具传奇小说色彩，其真实性难以得到其他史料的印证此诗的自杀创作时间，史籍自杀没有明确记载。而唐人孟棨《本事诗》和宋代《太平广记》则记载了此诗“本事”：崔护到长安参加进士考试落第后，在长安南郊偶遇一美丽少女，次年清明节重访此女不遇，于是题写此诗。这段记载颇具传奇小说色彩，其真实性难以得到其他史料的印证此诗的创作时间，史籍没有明确记载。而唐人孟棨《本事诗》和宋代《太平广记》则记载了此诗“本事”：崔护到长安参加进士考试落第后，在长安南郊偶遇一美丽少女，次年清明节重访此女不遇，于是题写此诗。这段记载颇具此诗的创作时间，史籍没有明确记载。而唐人孟棨《本事诗》和宋代《太平广记》则记载了此诗“本事”：崔护到长安参加：崔护到长安参加进士考试落第后，在长安南郊偶遇一美丽少女，次年清明节重访此女不遇，于是题写此诗。这段记载颇具传奇小说色彩，其真实性难以得到其他史料的印证此诗的创作时间，史籍没有明确记载。而唐人孟棨《本事诗》和宋代《太平广记》则记载了此诗“本事”：崔护到长安参加进士考试落第后，在长安南郊偶遇一美丽少女，次年清明节重访此女不遇，于是题写此诗。这段记载颇具传奇小说色彩，其真实性难以得到其他史料的印证此诗的创作时间，史籍没有明确记载。而唐人孟棨《本事诗》和宋代《太平广记》则记载了此诗“本事”：崔护到长安参加进士考试落第后，在长安南郊偶遇一美丽少女，次年清明节重访此女不遇，于是题写此诗。这段记载颇具传奇小说色彩，其真实性难以得到其他史料的印证此诗的创作时间，史籍没有明确记载。而唐人孟棨《本事诗》和宋代《太平广记》则记载了此诗“本事”：崔护到长安参加进士考试落第后，在长安南郊偶遇一美丽少女，次年清明节重访此女不三级片遇，于是题写此诗。这段记载颇具传奇小说色彩，其真实性难以得到其他史料的印证此诗的创作时间，史籍没有明确记载。而唐人孟棨《本事诗》和宋代《太平广记》则记载了此诗“本事”：崔护到长安参加进士考试落第后，在长安南郊偶遇一美丽少女，次年清明节重访此女不遇，于是题写此诗。这段记载颇具传奇小说色彩，其真实性难以得到其他史料的印证此诗的创作时间，史籍没有明确记载。而唐人孟棨《本事诗》和宋代《太平广记》则记载了此诗“本事”：崔护到长安参加进士考试落第后，在长安南郊三级片偶遇三级片一美丽少女，次年清明节重访此女不遇，于是题写此诗。这段记：崔护到长安参加进士考试落第后，在长安南郊偶遇一美丽少女，次年清明节重访此女不遇，于是题写此诗。这段记载颇具传奇小说色彩，其真实性难以得到其他史料的印证此诗的创作时间，史籍没有明确记载。而唐人孟棨《本事诗》和宋代《太平广记》则记载了此诗“本事”：崔护到长安参加进士考试落第后，在长安南郊偶遇一美丽少女，次年清明节重访此女不遇，于是题写此诗。这段记载颇具传奇小说色彩，其真实性难以得到其他史料的印证此诗的创作时间，史籍没有明确记载。而唐人孟棨《本事诗》和宋代《太平广记》则记载了此诗“本事”：崔护到长安参加进士考试落第后，在长安南郊偶遇一美丽少女，次年清明节重访此女不遇，于是题写此诗。这段记载颇具传奇小说色彩，其真实性难以得到其他史料的印证此诗的创作时间，史籍没有明确记载。而唐人孟棨《本事诗》和宋代《太平广记》则记载了此诗“本事”：崔护到长安参加进士考试落第后，在长安南郊偶遇一美丽少女，次年清明节重访此女不三级片遇，于是题写此诗。这段记载颇具传奇小说色彩，其真实性难以得到其他史料的印证此诗的创作时间，史籍没有明确记载。而唐人孟棨《本事诗》和宋代《太平广记》则记载了此诗“本事”：崔护到长安参加进士考试落第后，在长安南郊偶遇一美丽少女，次年清明节重访此女不遇，于是题写此诗。这段记载颇具传奇小说色彩，其真实性难以得到其他史料的印证此诗的创作时间，史籍没有明确记载。而唐人孟棨《本事诗》和宋代《太平广记》则记载了此诗“本事”：崔护到长安参加进士考试落第后，在长安南郊三级片偶遇三级片一美丽少女，次年清明节重访此女不遇，于是题写此诗。这段记载颇具传奇小说色彩，其真实性：崔护到长安参加进士考试落第后，在长安南郊偶遇一美丽少女，次年清明节重访此女不遇，于是题写此诗。这段记载颇具传奇小说色彩，其真实性难以得到其他史料的印证此诗的创作时间，史籍没有明确记载。而唐人孟棨《本事诗》和宋代《太平广记》则记载了此诗“本事”：崔护到长安参加进士考试落第后，在长安南郊偶遇一美丽少女，次年清明节重访此女不遇，于是题写此诗。这段记载颇具传奇小说色彩，其真实性难以得到其他史料的印证此诗的创作时间，史籍没有明确记载。而唐人孟棨《本事诗》和宋代《太平广记》则记载了此诗“本事”：崔护到长安参加进士考试落第后，在长安南郊偶遇一美丽少女，次年清明节重访此女不遇，于是题写此诗。这段记载颇具传奇小说色彩，其真实性难以得到其他史料的印证此诗的创作时间，史籍没有明确记载。而唐人孟棨《本事诗》和宋代《太平广记》则记载了此诗“本事”：崔护到长安参加进士考试落第后，在长安南郊偶遇一美丽少女，次年清明节重访此女不三级片遇，于是题写此诗。这段记载颇具传奇小说色彩，其真实性难以得到其他史料的印证此诗的创作时间，史籍没有明确记载。而唐人孟棨《本事诗》和宋代《太平广记》则记载了此诗“本事”：崔护到长安参加进士考试落第后，在长安南郊偶遇一美丽少女，次年清明节重访此女不遇，于是题写此诗。这段记载颇具传奇小说色彩，其真实性难以得到其他史料的印证此诗的创作时间，史籍没有明确记载。而唐人孟棨《本事诗》和宋代《太平广记》则记载了此诗“本事”：崔护到长安参加进士考试落第后，在长安南郊三级片偶遇三级片一美丽少女，次年清明节重访此女不遇，于是题写此诗。这段记载颇具传奇小说色彩，其真实性难以得：崔护到长安参加进士考试落第后，在长安南郊偶遇一美丽少女，次年清明节重访此女不遇，于是题写此诗。这段记载颇具传奇小说色彩，其真实性难以得到其他史料的印证此诗的创作时间，史籍没有明确记载。而唐人孟棨《本事诗》和宋代《太平广记》则记载了此诗“本事”：崔护到长安参加进士考试落第后，在长安南郊偶遇一美丽少女，次年清明节重访此女不遇，于是题写此诗。这段记载颇具传奇小说色彩，其真实性难以得到其他史料的印证此诗的创作时间，史籍没有明确记载。而唐人孟棨《本事诗》和宋代《太平广记》则记载了此诗“本事”：崔护到长安参加进士考试落第后，在长安南郊偶遇一美丽少女，次年清明节重访此女不遇，于是题写此诗。这段记载颇具传奇小说色彩，其真实性难以得到其他史料的印证此诗的创作时间，史籍没有明确记载。而唐人孟棨《本事诗》和宋代《太平广记》则记载了此诗“本事”：崔护到长安参加进士考试落第后，在长安南郊偶遇一美丽少女，次年清明节重访此女不三级片遇，于是题写此诗。这段记载颇具传奇小说色彩，其真实性难以得到其他史料的印证此诗的创作时间，史籍没有明确记载。而唐人孟棨《本事诗》和宋代《太平广记》则记载了此诗“本事”：崔护到长安参加进士考试落第后，在长安南郊偶遇一美丽少女，次年清明节重访此女不遇，于是题写此诗。这段记载颇具传奇小说色彩，其真实性难以得到其他史料的印证此诗的创作时间，史籍没有明确记载。而唐人孟棨《本事诗》和宋代《太平广记》则记载了此诗“本事”：崔护到长安参加进士考试落第后，在长安南郊三级片偶遇三级片一美丽少女，次年清明节重访此女不遇，于是题写此诗。这段记载颇具传奇小说色彩，其真实性难以得到其他史料的印三级片：崔护到长安参加进士考试落第后，在长安南郊偶遇一美丽少女，次年清明节重访此女不遇，于是题写此诗。这段记载颇具传奇小说色彩，其真实性难以得到其他史料的印证此诗的创作时间，史籍没有明确记载。而唐人孟棨《本事诗》和宋代《太平广记》则记载了此诗“本事”：崔护到长安参加进士考试落第后，在长安南郊偶遇一美丽少女，次年清明节重访此女不遇，于是题写此诗。这段记载颇具传奇小说色彩，其真实性难以得到其他史料的印证此诗的创作时间，史籍没有明确记载。而唐人孟棨《本事诗》和宋代《太平广记》则记载了此诗“本事”：崔护到长安参加进士考试落第后，在长安南郊偶遇一美丽少女，次年清明节重访此女不遇，于是题写此诗。这段记载颇具传奇小说色彩，其真实性难以得到其他史料的印证此诗的创作时间，史籍没有明确记载。而唐人孟棨《本事诗》和宋代《太平广记》则记载了此诗“本事”：崔护到长安参加进士考试落第后，在长安南郊偶遇一美丽少女，次年清明节重访此女不三级片遇，于是题写此诗。这段记载颇具传奇小说色彩，其真实性难以得到其他史料的印证此诗的创作时间，史籍没有明确记载。而唐人孟棨《本事诗》和宋代《太平广记》则记载了此诗“本事”：崔护到长安参加进士考试落第后，在长安南郊偶遇一美丽少女，次年清明节重访此女不遇，于是题写此诗。这段记载颇具传奇小说色彩，其真实性难以得到其他史料的印证此诗的创作时间，史籍没有明确记载。而唐人孟棨《本事诗》和宋代《太平广记》则记载了此诗“本事”：崔护到长安参加进士考试落第后，在长安南郊三级片偶遇三级片一美丽少女，次年清明节重访此女不遇，于是题写此诗。这段记载颇具传奇小说色彩，其真实性难以得到其他史料的印三级片证传奇小说色彩，其真实性难以得到其他史三级片证传奇小说色彩，其真实性难以得到其他史三级片到其他史料的印三级片证传奇小说色彩，其真实性难以得到其他史三级片难以得到其他史料的印三级片证传奇小说色彩，其真实性难以得到其他史三级片载颇具传奇小说色彩，其真实性难以得到其他史料的印三级片证传奇小说色彩，其真实性难以得到其他史三级片进士考试落第后，在长安南郊偶遇一美丽少女，次年清明节重访此女不遇，于是题写此诗。这段记载颇具传奇小说色彩，其真实性难以得到其他史料的印证此诗的创作时间，史籍没有明确记载。而唐人孟棨《本事诗》和宋代《太平广记》则记载了此诗“本事”：崔护到长安参加进士考试落第后，在长安南郊偶遇一美丽少女，次年清明节重访此女不遇，于是题写此诗。这段记载颇具传奇小说色彩，其真实性难以得到其他史料的印证此诗的创作时间，史籍没有明确记载。而唐人孟棨《本事诗》和宋代《太平广记》则记载了此诗“本事”：崔护到长安参加进士考试落第后，在长安南郊偶遇一美丽少女，次年清明节重访此女不遇，于是题写此诗。这段记载颇具传奇小说色彩，其真实性难以得到其他史料的印证此诗的创作时间，史籍没有明确记载。而唐人孟棨《本事诗》和宋代《太平广记》则记载了此诗“本事”：崔护到长安参加进士考试落第后，在长安南郊偶遇一美丽少女，次年清明节重访此女不三级片遇，于是题写此诗。这段记载颇具传奇小说色彩，其真实性难以得到其他史料的印证此诗的创作时间，史籍没有明确记载。而唐人孟棨《本事诗》和宋代《太平广记》则记载了此诗“本事”：崔护到长安参加进士考试落第后，在长安南郊偶遇一美丽少女，次年清明节重访此女不遇，于是题写此诗。这段记载颇具传奇小说色彩，其真实性难以得到其他史料的印证此诗的创作时间，史籍没有明确记载。而唐人孟棨《本事诗》和宋代《太平广记》则记载了此诗“本事”：崔护到长安参加进士考试落第后，在长安南郊三级片偶遇三级片一美丽少女，次年清明节重访此女不遇，于是题写此诗。这段记载颇具传奇小说色彩，其真实性难以得到其他史料的印三级片证传奇小说色彩，其真实性难以得到其他史三级片料的印证";
        List<String> allMatch1 = adt.getAllMatch1(txt);
        System.out.println(allMatch1);
        //List<String> words = adt.getAllMatch(txt);
        //System.out.println(words);
        System.out.println(System.currentTimeMillis()-l);
        //adt.dump();
    }


}
